<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>练习题</title>
</head>
<body>
<p>
练习题1： <br>
写一个程序，要求如下:  <br>
需求1：让用户输入五个有效年龄（0-100之间），放入数组中 <br>
必须输入五个有效年龄年龄，如果是无效年龄，则不能放入数组中 <br>
需求2：打印出所有成年人的年龄 (数组筛选) <br>
需求3：打印出所有人总年龄 （累加） <br>
需求4：打印出所有人的平均年龄 （累加） <br>
需求5：打印出最大年龄和最小年龄 （最大值
</p>

<script>
    // 需求1：让用户输入五个有效年龄（0-100之间），放入数组中
    // 定义数组
    let 年龄数组=[] // 数组存储年龄
    let 输入的年龄 // 存储输入的数

    // 因为要输入5个年龄, 循环条件判断
    let i = 1
    while (i <= 5) {
        输入的年龄 = +prompt(`请输入第${i}个有效的年龄:`) // + 号, 转换成数字类型
        if (输入的年龄 >= 0 && 输入的年龄 <= 100) { // 这里判断年龄是否符合要求, 提示如果不是数字判断也是假,所以也过滤了不是数字的值
            年龄数组.push(输入的年龄) // 值 写入到数字
            i = i + 1 // 循环终止条件,一定要加哦. 不然死循环了
            continue // 退出本次循环
        }
        alert('请输入正确的年龄!!!')
    }
    console.log(年龄数组) // 输出控制台信息

    let 成年人数组 = []
    let 年龄总和 = 0
    let 平均年龄 = 0

    for (let i = 0; i < 年龄数组.length; i++) {
        // 需求2：打印出所有成年人的年龄 (数组筛选)
        if (年龄数组[i] >= 18) {
            成年人数组.push(年龄数组[i])
        }

        // 需求3：打印出所有人总年龄 （累加）
        年龄总和 = 年龄总和 + 年龄数组[i]
    }
    console.log(`筛选出的成年人有: ${成年人数组}`)
    console.log(`年龄总和是: ${年龄总和}`)

    // 需求4：打印出所有人的平均年龄 （累加）
    平均年龄 = 年龄总和 / 年龄数组.length // length 返回数组长度
    console.log(`平均年龄是: ${平均年龄}`)

    // 需求5：打印出最大年龄和最小年龄
    // 思路: 数组先排序, 排序完数组的第一个元素就是要的 最大或者最小 年龄

    年龄数组.sort() // sort() 默认升序,可以不写参数
    console.log(`最小年龄是: ${年龄数组[0]}`)

    // sort() 降序写法
    年龄数组.sort(function (a, b){
        return b - a
    })
    console.log(`最大年龄是: ${年龄数组[0]}`)


</script>
</body>
</html>